In a network as vast as the Internet, server selection is important for client-server communication speed and network load balancing. One approach to server selection is through manual entry. Addresses of servers designated to service zones of clients are entered into a client-server database located in a network node used to provide server selection, such as a DNS (Domain Name System) proxy. The database essentially partitions the network clients. Thereafter, the address of a server designated to service a client request is returned from the database.
Theoretically, the manual entry method just described may be automated by automatic partitioning of the Internet, or other wide area network, into zones in a partitioning database. Clients access the partitioning database for addresses of servers within their respective zones. In practice, however, automatic partitioning is complicated in the case of the Internet, other wide area network, or large-scale inter-networks due to the size, complexity, and dynamic nature of the networks in question. Therefore, partitioning approaches fall short of being an optimum technique for providing server selection in an automated manner.
Server selection is provided through the use of a DNS protocol. Server selection could also be implemented through other protocols; DNS is, however, a common protocol today and is therefore being used here as an exemplary protocol. Typically, clients on the Internet are so-called “dumb” browsers that have little inherent intelligence. For example, a user enters a website name into the browser, and the browser must access a DNS proxy, or other network node capable of converting the “host” components of URLs (Uniform Resource Locators) to IP (Internet Protocol) addresses, i.e., in order to convert the website name into a corresponding IP address. The DNS proxy has in a database a list of one or more addresses of servers that are capable of providing the service requested by the client. From that list, the DNS proxy returns an address of a server to the client. However, there may be instances where the DNS proxy is unable to resolve a fully-qualified domain name (FQDN)—sometimes referred to as simply a domain name—to an IP address, so the DNS proxy accesses an authoritative network node that is able to provide a list of possible servers.
The server selection mechanism is implemented using DSN proxies generally as follows. Upon receiving a request from a client, the DNS proxy probes at least one candidate server in the list. The probed candidate server(s) responds to respective probes from the DNS proxy. The DNS proxy reports to the client the address(es) of a candidate server(s) that can provide reasonable service to the client, as determined by round trip probe time. The client uses the server address to access the corresponding server for substantive service.